Strategies for Providing a Customized Media Presentation Based on a Markup Page Definition (MPD)

ABSTRACT

Strategies are described for providing a media presentation based on a markup page definition (MPD). In operation, an operations center provides an MPD in response to a triggering event. The MPD may be expressed as an HTML page. The MPD includes one or more references to respective media streams. A client device renders a media presentation based on the MPD. For instance, the client device accesses the media streams referenced by the MPD by virtually tuning to and receiving these media streams. The strategies can be applied in various scenarios. For instance, the strategies can be applied to generate a media presentation of locale-specific programs or channels, recently viewed programs or channels, favorite programs or channels, popular programs or channels, and so on.

BACKGROUND

FIG. 1 shows a conventional technique for providing a mediapresentation, where the media presentation is an integrated (i.e.,single) composite of two original video streams. For instance, thistechnique may be employed in any circumstance in which it is desirableto “superimpose” the presentation of one video program onto another. Inone such circumstance, a program may show a live broadcast of a sportingevent in a principal part of its presentation, while showing a replay ofan interesting play in a sub-picture that is superimposed over theprincipal part of the presentation.

To implement this conventional technique, an operations center 102 mayinclude a video integration module 104. The video integration module 104combines together 11 two or more video streams 106. The videointegration module 104 produces a single channel 108. The content of thesingle channel 108 includes a combination of the video streams 106. Theoperations center 102 may broadcast the single channel 108 on a singleassigned frequency.

A client device 110, such as a set-top box, receives the single channel108 in a conventional manner by tuning to the frequency of the singlechannel 108 using a physical tuner 112. The client device 110 outputs amedia presentation 114. The media presentation 114 is a composite of themultiple video streams 106. For example, in the representative case ofFIG. 1, the media presentation 114 includes a first media presentation(representing the content of a first video stream) and a secondpresentation (representing the content of a second video stream).However, despite the visual appearance of two separate mediapresentations, the composite media presentation 114 actually representsa single program like any other program delivered via a single channel.

While the above technique has proven useful, it does not provide aparticularly versatile method for combining video streams together. Forat least this exemplary reason, there is a need for a more effectivetechnique for creating a media presentation that includes componentparts.

SUMMARY

The following description sets for strategies for providing a mediapresentation based on a markup page definition (MPD). In operation, anoperations center provides an MPD in response to a triggering event. TheMPD may be expressed as a Hypertext Markup Language (HTML) page. The MPDincludes one or more references to respective media streams. The MPD(and its associated references) can be customized for a particulartarget client device. Upon receipt, the client device renders a mediapresentation based on the MPD. To perform this task, the client deviceaccesses the media streams referenced by the MPD by virtually tuning toand receiving these media streams. More specifically, in one case, theclient device includes a browser which interprets markup information inthe MPD to access the media streams. In another case, a conversion toolis used to convert the MPD into a modified form which is tailored tosuit the capabilities of the client device, and the client devicerenders the media presentation based on the modified form of the MPD.

The strategies can be used in various applications. According to oneexample, the operations center can generate an MPD that includesreferences to programs that pertain to a specific locale, such asweather programs which pertain to a particular region of the country.According to another example, the operations center can generate an MPDthat includes references to programs or channels that the user hasrecently viewed. According to another example, the operations center cangenerate an MPD that includes references to programs or channels that auser has earmarked as “favorites.” According to another example, theoperations center can generate an MPD that includes references toprograms that have been assessed as popular among a defined group (suchas users of a particular geographic group or interest group). Accordingto another example, the operations center can generate an MPD thatincludes references to programs that pertain to an identified topic(such as sports-related programming). These are representativeapplications. Still other applications are possible.

The strategies summarized above confer a number of exemplary advantages.According to one advantage, the strategies provide a versatile techniquefor generating a media presentation having component parts. Due to itsversatility, the strategies can be more easily adapted for use indifferent applications. According to another advantage, the strategiesprovide media presentations having component parts that are tailored todifferent end users. According to another advantage, the strategies canprovide a media presentation having component parts which representseparate streams with which the user may separately interact. Thestrategies may confer yet additional features and benefits.

This Summary section refers to exemplary manifestations of the subjectmatter described herein, and hence does not limit the scope of theinvention set forth in the Claims section.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 shows an example of a known technique for producing and consuminga single stream that combines multiple component parts.

FIG. 2 shows an overview of an exemplary system for rendering a mediapresentation based on a markup page definition (MPD), including anoperations center and a representative client device.

FIG. 3 shows a page creation module that can be used in the system ofFIG. 2.

FIG. 4 shows processing functionality that can be used to implement anyaspect of the operations center of FIG. 2.

FIG. 5 shows processing functionality that can be used to implement anyaspect of the client device of FIG. 2.

FIGS. 6 and 7 show a procedure for creating an MPD according to twodifferent respective scenarios.

FIG. 8 shows a procedure for generating a media presentation based on anMPD.

The same numbers are used throughout the disclosure and figures toreference like components and features. Series 100 numbers refer tofeatures originally found in FIG. 1, series 200 numbers refer tofeatures originally found in FIG. 2, series 300 numbers refer tofeatures originally found in FIG. 3, and so on.

DETAILED DESCRIPTION

The following description sets forth strategies for creating a mediapresentation that includes plural component parts based on a markup pagedefinition (MPD). The strategies are manifested in systems,computer-readable media, methods, and so on.

This disclosure includes the following sections. Section A sets forth anexemplary system for producing a media presentation based on an MPD.Section B sets forth exemplary procedures which explain the operation ofthe system of Section A. Section C describes various applications of thesystem of Section A.

A. Exemplary System (FIGS. 2-5)

Generally, any of the functions described with reference to the figurescan be implemented using software, hardware (e.g., fixed logiccircuitry), manual processing, or a combination of theseimplementations. The term “logic”, “module” or “functionality” as usedherein generally represents software, hardware, or a combination ofsoftware and hardware which can be configured to implement prescribedfunctions. For instance, in the case of a software implementation, theterm “logic,” “module,” or “functionality” represents program code(and/or declarative-type instructions) that performs specified taskswhen executed on a processing device or devices (e.g., CPU or CPUs). Theprogram code can be stored in one or more computer readable memorydevices.

More generally, the illustrated separation of logic, modules, andfunctionality into distinct units may reflect an actual physicalgrouping and allocation of such software and/or hardware, or cancorrespond to a conceptual allocation of different tasks performed by asingle software program and/or hardware unit. The illustrated logic,modules and functionality can be located at a single site (e.g., asimplemented by a processing device), or can be distributed over plurallocations.

The term “machine-readable media” or the like refers to any kind ofmedium for retaining information in any form, including various kinds ofstorage devices (magnetic, optical, static, etc.). The termmachine-readable media also encompasses transitory forms forrepresenting information, including various hardwired and/or wirelesslinks for transmitting the information from one point to another.

A.1. Overview of One Exemplary System (FIG. 2)

FIG. 2 shows one media streaming system 200 for producing a mediapresentation having multiple component parts based on a markup pagedefinition (MPD). The multiple component parts may comprise differentrespective media streams. The media streams, in turn, may pertain toaudio-visual media presentations, music, games, and so on. In thissense, the media presentation can be viewed as a mosaic of smallercomponent media presentations, organized into a page that pertains to aprescribed theme.

The system 200 includes an operations center 202 for handling variousserver-side aspects of the system. The operations center 202communicates with a plurality of client devices, such as exemplaryclient device 204, via a coupling mechanism 206. In the followingdiscussion, explanation of the composition and behavior of therepresentative 8 client device 204 applies to any number of clientdevices that are not shown in FIG. 2.

The operations center 202 can be implemented by one or more servercomputers, databases, and other data handling equipment. The componentsof the operations center 202 can be located at a single site ordistributed over plural sites. Further, the components of the operationscenter 202 can be administered by a single entity or plural cooperatingentities. FIG. 4, to be discussed in greater detail below, shows theexemplary architecture of processing functionality that can be used toimplement any aspect of the operations center 202.

The representative client device 204 can represent a television set withintegral IP interfacing/processing functionality, a television set withan associated set-top box coupled thereto, a digital video recorder(DVR) device, a rewritable digital video disc (DVD-RW) device, apersonal computer having AV processing functionality, a music playbacksystem, a portable personal media device, a mobile telephone, a gameconsole, and so forth (as well as any combination of these devices). Inwhatever manner implemented, the representative client device 204 cancomprise a media processing module 208 that is communicatively coupledto a media presentation module 210. FIG. 5, to be discussed in greaterdetail below, shows the exemplary architecture of processingfunctionality that can be used to implement the client device 204.

The coupling mechanism 206 couples the operations center (OC) 202 to therepresentative client device 204, and is therefore labeled in FIG. 2 asan OC-to-local coupling mechanism. This coupling mechanism 206 can beimplemented in different ways to suit different technical and commercialenvironments. For instance, the coupling mechanism 206 can include anykind of network (or combination of networks), such as a wide areanetwork (e.g., the Internet), an intranet, Digital Subscriber Line (DSL)network infrastructure, point-to-point coupling infrastructure, and soon. The coupling mechanism 206 can use or involve any kind of protocolor combination of protocols. In the case in which one or more digitalnetworks are used to disseminate information, the coupling mechanism 206can include various hardwired and/or wireless links, routers, gateways,name servers, and so on. In the case where DSL infrastructure is used todisseminate information, the coupling mechanism 206 can utilize theservices, in part, of telephone coupling infrastructure and DSLprocessing functionality.

Now referring to the exemplary composition of the operations center 202in greater detail, the operations center 202 can include a contentdelivery system 212. The purpose of the content delivery system 212 isto delivery streams of media information to the client device 204 viathe coupling mechanism 206. To function in this manner, the operationscenter 202 includes an acquisition module 214 for supplying programsfrom one or more sources of such information, and for optionallyperforming preliminary processing on the programs (such as by convertingthe programs into a uniform format for dissemination to the clientdevice 204). The sources can represent any kind of entity which producesor provides media information, such as cable or satellite televisionproviders, one or more Video-On-Demand (VOD) providers, one or morepublishing houses of information, one or more library sources, any kindof Internet-enabled repository, and so on. The acquisition module 214can be implemented by one or more server computers or otherfunctionality (not shown).

The content delivery system 212 can also include a delivery module 216for streaming media information to the client device 204 via thecoupling mechanism 206. The delivery module 216 can be implemented as acollection of server computers or other functionality. One specific butnon-limiting implementation of delivery module 216 is described incopending and commonly assigned U.S. patent application Ser. No.10/010,200, entitled, “Accelerated Channel Change in Rate-LimitedEnvironments,” naming the inventors of Geoffrey R. Smith et al., filedon Dec. 10, 2004, which is incorporated herein by reference in isentirety.

The system shown in FIG. 2 includes one or more downlink paths and oneor more optional uplink paths. The downlink paths are used to forwardmedia programs to the client device 204. The uplink paths can be used toforward user selections and other information to the operations center202. The uplink and downlink paths can be implemented by the samecommunication mechanism, or by different respective communicationmechanisms.

The operations center functionality 202 also includes a page supplyingsystem 218. The page supplying system 218 can be implemented by the sameequipment that implements the content delivery system 212, or bydifferent equipment (or by some hybrid of these two different cases).Further, the page supplying system 218 can be administered by the sameentity that implements the content delivery system 212, or by adifferent entity. Further, the page supplying system 218 can be locatedat the same site as the content delivery system 212 or at a differentsite.

The page supplying system 218 includes a page creation module 226. Thepurpose of the page creation module 226 is to create a markup pagedefinition (MPD) 228. As the name suggests, the MPD 228 may compriseinformation expressed in a declarative markup language, such as, but notlimited to, the Hypertext Markup Language (HTML). The markup informationin the MPD 228 contains instructions that define the visual appearanceand other aspects of a media presentation to be displayed by the clientdevice 206.

For example, consider the illustrative case of the exemplary mediapresentation 220 being displayed by the client device 204. This mediapresentation 220 includes a caption 222 that reads, “Your FavoriteChannels,” which informs the viewer that the media presentation 220'spurpose is show samples of the viewer's favorite channels. The mediapresentation 220 also includes plural video presentations 224, which, inthis case, show the content being delivered by three of the user'sfavorite channels. Therefore, in this particular scenario, the MPD 228includes an instruction to present the textual caption 222. The MPD 228can delimit the textual caption by appropriate markup tags. The MPD 228can also include instructions to present three video presentations 224at prescribed locations in the media presentation 220. The MPD 228 canidentify the video presentations 224 by including appropriate referencesto the video presentations 224, delimited by appropriate markup tags.

Note that the use of the term “page” here does not necessarily implythat the media presentation 220 specified by the MPD 228 is limited to asingle displayed page of information. The term “page” very generallyrefers to any collection of information that is used to produce any kindof display. For instance, the MPD 228 may include instructions whichdefine the appearance of multiple displayable pages of the mediapresentation 220, and so on.

In those circumstances in which the client device 204 includesbrowser-like functionality that is able to interpret a HTML MPD 228,then the page supplying system 218 can forward the original MPD 228 tothe client device 204. In other scenarios, the client device 204 may notbe able to interpret the MPD 228, due, for instance, to processinglimitations and others factors. In this case, the page supplying system218 can optionally include a conversion tool 230. The conversion tool230 converts the MPD 228 into a form that the client device 204 caninterpret. The specific nature of the conversion tool 230 variesdepending on the characteristics and capabilities of the client device204 which is to receive the MPD 228.

In one case, the conversion tool 230 can include functionality whichconverts HTML information into Extensible Markup Language (XML)information. The conversion tool 230 can also produce images (such asJPEG images), which accompany the XML information. The tool 230generates the images to duplicate parts of the media presentation thatis described by the HTML information in the MPD 228. By producing thiskind of modified form of the MPD 228, the client device 204 can renderthe media presentation 220 without having to interpret HTML information.

Now referring to the client-side aspects of the system 200, the clientdevice 204 can include, among other components, a page display module232. The purpose of the page display module 232 is to receive the MPD228, interpret it, and produce the media presentation 220 based on suchprocessing. As explained above, in one implementation, the client device208 can include browser-like functionality. In this case, the pagedisplay module 232 can interpret HTML instructions in the MPD 228. Inanother case, the client device 204 may not be able to interpret HTMLinstructions. In this case, the page display module 232 processes theMPD 228 in whatever modified form it is provided by the conversion tool230 (where such form is environment-specific).

As described above, the MPD 228 includes references to one or more videoprograms that should be presented at defined locations within the mediapresentation 220. The page display module 232 receives these references,and based on these references, accesses one or more video streamsassociated with the programs being referenced. To perform this function,the page display module 232 interacts with a virtual tuner 234. Thevirtual tuner 234 “tunes” to the video streams identified by thereferences. In one exemplary implementation, tuning can compriseaccessing one or more multicast sources (e.g., by specifying theaddresses of such multicast sources). One known way of receivingmulticast content is by using the Internet Group Multicast Protocol(IGMP).

The virtual tuner 234 is referred to as “virtual” in the sense that itdoes not tune to a frequency that is being used to transmit a singlechannel, as in the traditional case of FIG. 1. Because the virtual tuner234 is not implemented by a physical tuner, there is theoretically nolimit to the number of video streams that it can receive. The virtualtuner 234 is potentially limited only by bandwidth constraints whichdefine the total of amount of information that it can receive andprocess at any one instance. Further details regarding one technique forreceiving plural streams of information using a virtual tuner isdescribed in copending and commonly assigned U.S. patent applicationSer. No. 11/057,477, entitled, “Tunerless Media Presentation Unit andMethods of Use,” naming the inventors of David L. de Heer et al., filedon Feb. 14, 2005, which is incorporated herein by reference in itsentirety.

As a result of the operation of the page display module 232 and thevirtual tuner 234, the client device 234 can receive plural videostreams 236 at the same time. Unlike the conventional case (of FIG. 1),the plural video streams 236 comprise separate programs, possibly beingtransmitted over plural channels.

The result of the operation of the system 200 is the production of themedia presentation 220. One exemplary media presentation 220 wasdescribed above, including a caption 222 and multiple video streams 224.The video streams may comprise picture-in-picture (PIP) presentations ofmoving video content. The video streams can be selected to have anysize, resolution, frame rate, and so on. Instead of motion videostreams, the media presentation 220 can include thumbnail presentationsthat include representative frames from the video streams (which canalternatively be periodically updated at a defined rate). Still otherdisplay options are possible. One exemplary technique for displaying amedia presentation based on markup content is described in U.S. patentapplication Ser. Nos. 10/892,705, 10/892,917, and 10/893,714, allentitled, “Document Data Structure and Method for Integrating BroadcastTelevision with Web Pages,” all naming the inventors of Daniel J.Zigmond et al., all filed on Jul. 16, 2004, and which are allincorporated herein by reference in their respective entireties.

According to another feature, the user can interact with separate videostreams. For instance, when the user selects one of the video streams224, the system 200 can be configured to display the selected stream asthe principal video stream, or the system 200 can be configured toperform some other function associated with the selected stream.

In the particular scenario of FIG. 2, the goal of the media presentation220 is to display the favorite programs or channels of the user.However, this is merely one of many possible applications. Section C(below) sets forth additional applications.

A.2. Page Creation Module (FIG. 3)

FIG. 3 illustrates the exemplary makeup of the page creation module 226in greater detail. By way of overview, in one mode, the page creationmodule 226 can rely on a manual authoring tool 302 that allows a humanuser to manually create the markup page definition (MPD) 228. In anothermode, the page creation module 226 can rely on an automatic orsemiautomatic page authoring tool 304 that creates the MPD 228 in anautomatic or semiautomatic manner.

The manual page authoring tool 302 can represent any functionality thatallows a user to write markup instructions that define the layout of adesired MPD 228. For instance, such manual page authoring tool 302 caninclude a text editor. The manual page authoring tool 302 can includeother conventional functionality, such as debugging tools, pagepresentation preview tools, and so forth.

The automatic or semiautomatic authoring tool 304 (referred to forbrevity as an “automatic page authoring tool”) can represent anyfunctionality for automatically (or semi-automatically) constructing theMPD 228. The nature in which the MPD 228 is constructed depends on thefunction that the MPD 228 fulfills in a specific scenario. In generalterms, in one case, the automatic page authoring tool 204 may constructthe MPD 228 based on data collected in a data store 306 by a datacollection tool 308.

For example, assume that the purpose of the MPD 228 is to display anarray of video streams that represent the last five channels that theuser has visited. In this case, the data collection tool 308 collectschannel selections made by the user. Or assume that the purpose of theMPD 228 is to display an array of video streams that represent theuser's favorite channels. In this case, the data collection tool 308collects preference information expressly identified by the user. Or theMPD 228 can infer the preferences of the user based on common types ofselections made by the user. In another case, assume that the purpose ofthe MPD is to display an array of video streams that are popular withina certain group. In this case, the data collection tool 308 collectsselections made by an identified group of users (such as the users in aparticular geographic region). Section C expands on the above scenarios,and also describes additional scenarios.

In any event, the automated page authoring tool 304 can retrieve thedata stored in the data store 306 and apply it to produce the MPD 228.For example, assume that the purpose of the MPD 304 is to show the lastfive channels that the user has viewed. The automated page authoringtool 304 can determine reference data that corresponds to the fivechannels and then embed this reference data into the MPD 228. This kindof authoring tool 304 may be semi-automated in the sense that someaspects of the media presentation 220 may be manually defined by a user.For instance, a human user may manually define how the video streams arearranged in the media presentation 220. A human user may also manuallydefine various textual captions, graphics, and other information thatmay accompany the presentation of the video streams. In other words, ahuman user may manually define a skeleton framework of the mediapresentation 220, and the automatic authoring tool 304 may thenautomatically and dynamically insert video stream references into theframework, depending on user selections and/or other variable data.

In general terms, in either the manual mode or the automatic mode, thepage creation module 226 can be said to accept page design data and tocreate the MPD 228 based, in part, on the page design data. The pagedesign data can reflect locale-specific information, user mediaselection information, user-specified favorite information, popularityinformation, and so on. Based on the page design data, the page creationmodule 226 can create the MPD 228 so that it is customized for aparticular client target 19 device.

FIG. 3 also generally shows the exemplary makeup of the MPD 228. Asexplained above, the MPD 228 can include markup language content (suchas HTML content). Tags can be defined to demarcate visual elementswithin the media presentation 220, such as text, graphics, videostreams, and so forth. The resultant MPD 228 constitutes declarativeinstructions which direct the page display module 232 of the clientdevice 204 to construct the defined media presentation 220 for output tothe user. The above-described Zigmond et al. Patent Applications provideone exemplary way of structuring references to media information withina markup page.

A structure 310 depicted at the bottom of FIG. 3 graphically representsthe kind of a MPD-defined skeleton framework mentioned above. Theauthoring tool 304 may automatically and dynamically insert video streamreferences, depending on user selections and/or other variable data,into this structure 310.

A.3. Alternative Implementation: Local Page Supplying System

Although the above explanation describes the page supplying system 218as part of the operations center 202, this represents only one exemplaryimplementation. In another implementation, the page supplying system 218can be part of the client device 204, or at least part of equipment thatis local with respect to the client device 204. In this case, the clientdevice 204 itself can construct the MPD 228 used to create the mediapresentation 220.

In still another example, aspects of the page supplying system 218 canbe shared between the operations center 202 and the client device 204.For instance, a server-side page supplying system 218 can forward abasic framework that defines how to construct the MPWD 228. Aclient-side page supplying system 218 then receives data that is used tocustomize the basic framework to produce a final MPD 228. Thisimplementation therefore may not require transmitting user selectionsfrom the client device 204 to the operations center 202. For example,consider the case in which the goal is to produce a media presentation220 that displays the user's five most recent channel selections. Theoperations-side page supplying system 218 can provide a basic HTMLframework that generally describes how to organize the favorite channelsub-presentations within the overall media presentation 220. Aclient-side page supplying system 218 can then locally receive theuser's selections, and based on these selections, modify the MPD 228 toinclude references to the most recently viewed N channels.

A.4. Operations Center-Side Processing Functionally (FIG. 4)

Various components of the operations center 202 shown in FIG. 2 can beimplemented by processing equipment, such content delivery system 212(an its individual components) and the page supplying system 218 (andits individual components). For example, these components can beimplemented as one or more server computers, storage mechanisms, andother processing equipment. FIG. 4 shows a general depiction ofprocessing functionality 402 that can be used to implement any ofcomponents of the operations center 202.

The processing functionality 402 can include various volatile andnon-volatile memory, such as RAM 404 and ROM 406, as well as one orprocessing devices 408. The memory (404, 406) can store instructionswhich perform the various functions described above when executed by theprocessing devices 408. The processing functionality 402 also optionallyincludes various media devices 410, such as a hard disk module, anoptical disk module, and so forth. The processing functionality 402 alsoincludes an input/output module 412 for receiving various inputs fromthe user (as implemented by a key input mechanism, etc.), and forproviding various outputs to the user (as implemented by various displaydevices, printers, audio output devices, etc.). The processingfunctionality 402 can also include one or more network interfaces 414for exchanging data with other devices. One or more communication buses416 communicatively couple the above-described components together.

In various applications, the processing functionality 402 shown in FIG.4 can include additional modules or can omit one or more of the modulesshown in FIG. 4.

A.5. Exemplary Client-Side Processing Equipment (FIG. 5)

FIG. 5 provides additional details regarding the representative clientmedia device 204. In general, a client device 204 can include theabove-referenced media processing module 208 and a media presentationmodule 210. The role of the media processing module 208 is to performvarious processing operations on a received media resource. The role ofthe media presentation module 210 is to present the processed mediaresource.

The media processing module 208 can include a number of modules forperforming its ascribed tasks. To begin with, the media processingmodule 208 includes a network interface module 502. The networkinterface module 502 can represent any functionality for receiving mediainformation from the operations center 202 using any coupling mechanism.For example, the network interface module 502 can comprise an EthernetNIC, a DSL modem, a cable modem, a wireless network interface, or otherkind of network interface equipment.

The media processing module 208 also includes memory 504. A portion ofthe memory 504 can optionally comprise program instructions forimplementing any aspect of client-side page handling functionality, suchas the page display module 232.

The media processing module 208 also includes an audio-visual (AV)decoder 506 for decoding (and decompressing) the received media resourceinto its video and audio components. Decoding comprises ordering packets(if received out of order), extracting media information from the streamof received packets, and also extracting timing information that willgovern the playback of the media resource. Together, the networkinterface 502 and the AV decoder 506 can implement the virtual tuner 234of FIG. 2.

The media processing module 208 also includes one or more processors 508for executing instructions to implement the functionality of the mediaprocessing module 208.

The media processing module 208 also includes an I/O interface 510 forinteracting with the user via one or more input devices, such as aremote controller 512, a personal computer (not shown), a joy stick (notshown), a voice recognition mechanism (not shown), and so forth.

The media processing module 208 also includes an AV interface module 514for providing media information in an appropriate format to the mediapresentation module 210.

The media processing module 208 can also include a media content store516 for storing recorded resources and other data. More specifically,this media content store 516 can be integrated with the media processingmodule 208 itself, or can represent part of a separate recording device,with which the media processing module 208 interacts.

Finally, the client processing module 208 can include various othermodules 518, not specifically identified by name in the figure. Forinstance, the media processing module 208 can include a graphicscompositor for combining a video component of the media information fromthe AV decoder 506 on a frame-by-frame basis with graphics information.The graphics information may comprise various user interfacepresentations which are overlaid on the media information.

One or more busses 520 communicatively couple the above-identifiedcomponents together

The media presentation module 210 can comprise any kind of device forpresenting AV information, including a CRT-type device, an LCD-typedevice, and so forth. In any case, the media presentation device 210defines a display surface 522. The media processing module 208 canpresent one or more user interface presentations 524 on the displaysurface 522. Once again, the organization and content of informationpresented on the display surface 522 is governed by the markup pagedefinition (MPD) created by the page supplying system 218 of theoperations center 202.

B. Exemplary Method of Operation (FIGS. 6-8)

FIGS. 6-8 describe the operation of the system 200 in flowchart form. Tofacilitate discussion, certain operations are described as constitutingdistinct steps performed in a certain order. Such implementations areexemplary and non-limiting. Certain steps described in these flowchartscan be grouped together and performed in a single it operation, andcertain steps can be performed in an order that differs from the ordershown in the flowcharts. As the functions described in these flowchartshave already been explained in Section A, this section will serveprimarily as a review of those functions.

B.1. Creating the MPD (FIGS. 6 and 7)

FIG. 6 shows a procedure 600 which broadly outlines the steps involvedin manually creating a markup page definition (WD) 228. In step 602, theuser's selections are received. This may involve receiving the user'sinput via a text editor to create an HTML document. In step 604, themanual authoring tool 302 (of FIG. 3) creates the MPD 228 based on theuser's inputs.

FIG. 7 shows a procedure 700 which broadly outlines the steps involvedin automatically or semi-automatically creating the MPD 228. In step702, various data is optionally collected that will govern the creationof the MPD 228. Such data, as explained in the context of FIG. 3, maycomprise data gleaned from the user's channel or program selections,data gleaned from the user's specified preferences, data collected froman identified group of users, and so forth. In step 704, the automaticauthoring tool 304 (of FIG. 3) creates the MPD 228 based on thecollected data.

In both FIGS. 6 and 7, the page creation module 226 can generally besaid to create the MPD 228 based on page design data. The page designdata reflects any information that governs the selection of mediastreams for inclusion in the MPD 228, where such selection can betailored to suit a given target client device.

B.2. Providing a Media Presentation Based on the MPD (FIG. 8)

FIG. 8 shows a procedure 800 for generating a media presentation basedon an MPD 228.

Steps 802-806 define operations that may optionally be performed by theoperations center 202. In step 802, the page supplying system 218receives a triggering event. The triggering event triggers the displayof media presentation 220 based on the MPD 228. This event may be anexpress instruction by the end user to display the media presentation220, such as a request to display the N most recently viewed channels, arequest to display the user's favorite channels, a request to displaythe most popular channels among a defined group, and so on.Alternatively, the system 200 may be configured to automatically presentcertain media presentations 220 without receiving express instructionsfrom the end user. For example, the system 200 may present a mediapresentation that features the user's favorite channels or the user'srecently viewed channels when the user first turns on her television(without being prompted to do so by the user). In step 804, based on thetriggering event, the page supplying system 218 accesses an appropriateMPD 228. In step 806, the conversion tool 230 optionally transforms thepage into a format that can be consumed by the client device 204. Thisis appropriate, for instance, when the client device 204 does not havethe capability of interpreting HTML declarative content.

Steps 808-812 define operations that may be performed by the clientdevice 202. In step 808, the page display module 232 of the clientdevice 204 receives the MPD 228. In step 810, in the course ofprocessing the MPD 228, the page display module 232 accesses one or morevideo streams that are referenced by the MPD 228. The page displaymodule 232 can perform this task with the assistance of the virtualtuner 234. In step 812, the page display module 232 finalizes the mediapresentation 220 based on the instructions in the MPD 228 and theaccessed video streams, and displays the media presentation 220.

C. Exemplary Applications

As noted above, the system 200 shown in FIG. 2 can be used in manydifferent applications. This section describes representativeapplications.

C.1. Locale-Specific Presentations.

In a first application, the system 200 can present a locale-specificmedia presentation 220. For example, when a user who lives the PacificNorthwest activates a weather report service, the page supplying system218 detects the locale of the user (e.g., based on locale informationembedded in the client device's request message). The page supplyingsystem 218 can then create a MPD 228 that includes identifiers thatreference one or more weather-related video streams pertinent to thePacific Northwest. In any of the scenarios described in this section,the MPD 228 may also include textual and/or graphical informationassociated with a particular kind of media presentation 220. Forexample, in this case, the MPD 228 may display a caption that identifiesthe weather report as a report for the city of Portland, Oreg. The pagedisplay module 232 at the client device 204 then produces the mediapresentation 220 that includes the weather-related video streamsreferenced by the MPD 228.

C.2. Channel Refresh.

In another application, the system 200 keeps track of the channel and/orprogram selections made by a user. When user activates a refresh command(e.g., on the remote controller 512), or based on some other triggeringevent, the page supplying system 218 creates a MPD 228 that referencesthe last N channel selections and/or program selections made by a user.The page display module 232 then produces the media presentation 220based on the channel refresh MPD 228 in the manner described above. Thistype of media presentation 220 is specifically tailored to an individualuser, as it presents video streams based on a specific user'sselections.

C.3. Favorite Channels.

In another application, the system 200 keeps track of the user'sfavorite channels or programs. For example the user may create aprofile, part of which identifies the user's favorite channels orprograms. Or the system 200 can independently assess the preferences ofthe user by monitoring common selections made the user. When the useractivates a favorite command (e.g., on the remote controller 512), thepage supplying system 218 creates a MPD 228 that includes identifiersthat reference the user's favorite channels or programs. Or the system200 can automatically provide the MPD 228 (that is, without receiving anexpress request from the user). Upon receipt of the MPD 228, the pagedisplay module 232 produces the media presentation 220 that includes thefavorite video streams referenced by the MPD 228. Like the case of therefresh media presentation, this type of media presentation isspecifically tailored to an individual user, as it presents videostreams based on a specific user's selections.

C.4. Popular Channels.

In another application, the system 200 keeps track of the channels thatare assessed as being popular among an identified group of users. Forexample, the system 200 can monitor the selections made within aparticular household, within a particular neighborhood, city, state,country, and so forth. Or the system 200 can monitor the selections madewithin a particular interest group, such as users who have previouslyregistered an interest in adventure movies, and so on. Based on theseselections, the system 200 can determine which channels or programs arethe most popular in the identified group (based on which channels orprograms are most frequently watched by the users). Then, when the useractivates a “show me popular items” command, or based on an automatictriggering event, the page supplying system 518 creates an MPD 228 thatincludes identifiers that reference the popular channels or programs.The page display module 232 then produces a media presentation 220 thatincludes the popular video streams referenced by the MPD 228. This typeof media presentation is specifically tailored with respect to membersof a group, such that members of one group may receive a different mediapresentation than members of another group.

C.5. Channels Grouped by Subject

In another application, the system 200 can group channels or programsinto different categories depending on attributes associated with thechannels or programs. For example, the system 200 can create groupsassociated with particular genres of content (such as news-relatedcontent, adventure-related content, comedy-related content,children-related content, and so on). Or the system 200 can creategroups associated with particular artists (such as content that featuresa particular artist). Or the system 200 can create groups associatedwith particular ratings (such as G-rated content, PG-rated content, andso on). Still other bases for grouping channels and programs arepossible. In response to an instruction to provide a group-related mediapresentation 220, the page supplying system 218 creates an MPD 228 thatincludes identifiers that reference channels or programs associated witha particular topic. The page display module 232 then produces the mediapresentation 220 based on the MPD 228 in the manner described above.

The above examples are representative. The system 200 can be applied toyet other scenarios.

In closing, although the invention has been described in languagespecific to structural features and/or methodological acts, it is to beunderstood that the invention defined in the appended claims is notnecessarily limited to the specific features or acts described. Rather,the specific features and acts are disclosed as exemplary forms ofimplementing the claimed invention.

1. A method for presenting media content, comprising: receiving pagedesign data; creating a page definition, based on the page design data,that is customized for a target client device, the page definitionincluding at least one reference to a media stream; and providing thepage definition to the target client device, wherein the target clientdevice uses the page definition to access the media stream identified bysaid at least one reference, and to present the media stream in a mannerspecified by the page definition, wherein the page definition comprisesdeclarative markup content, and wherein said at least one referencecomprises information within the declarative markup content thatidentifies the media stream.
 2. The method of claim 1, wherein thedeclarative markup content comprises HTML information.
 3. The method ofclaim 1, further comprising converting the page definition to a modifiedform prior to providing the page definition to the target client device,wherein the modified form accommodates a processing capability of thetarget client device.
 4. The method of claim 1, wherein the receivedpage design data pertains to a locale associated with the target clientdevice, and wherein the media stream identified by said at least onereference is associated with a locale-specific media resource.
 5. Themethod of claim 1, wherein the received page design data reflects amedia resource recently consumed by the target client device, andwherein the media stream identified by said at least one reference isassociated with the recently consumed media resource.
 6. The method ofclaim 1, wherein the received page design data reflects a media resourceidentified by a user as a favorite, and wherein the media streamidentified by said at least one reference is associated with thefavorite media resource.
 7. The method of claim 1, wherein the receivedpage design data reflects a popularity of a collection of mediaresources, and wherein the media stream identified by said at least onereference is associated with an assessed popular media resource.
 8. Oneor more machine-readable media containing machine-readable instructionsfor implementing the method of claim
 1. 9. A method for presenting mediacontent at a target client device, comprising: providing page designdata to a page creation module; at the target client device: receiving apage definition from the page creation module that is customized, basedon the page design data, for the target client device, the pagedefinition including at least one reference to a media stream; using thepage definition to access the media stream identified by said at leastone reference; and presenting the media stream in a manner specified bythe page definition, wherein the page definition comprises declarativemarkup content, and wherein said at least one reference comprisesinformation within the declarative markup content that identifies themedia stream.
 10. The method of claim 9, wherein the declarative markupcontent comprises HTML information.
 11. The method of claim 9, whereinthe accessing of the media stream comprises virtually tuning to a sourceof the media stream.
 12. The method of claim 9, wherein said at leastone reference comprises plural references to plural respective mediastreams.
 13. The method of claim 9, wherein the provided page designdata pertains to a locale associated with the target client device, andwherein the media stream identified by said at least one reference isassociated with a locale-specific media resource.
 14. The method ofclaim 9, wherein the provided page design data reflects a media resourcerecently consumed by the target client device, and wherein the mediastream identified by said at least one reference is associated with therecently consumed media resource.
 15. The method of claim 9, wherein theprovided page design data reflects a media resource identified by a useras a favorite, and wherein the media stream identified by said at leastone reference is associated with the favorite media resource.
 16. Themethod of claim 9, wherein the provided page design data reflects apopularity of a collection of media resources, and wherein the mediastream identified by said at least one reference is associated with anassessed popular media resource.
 17. One or more machine-readable mediacontaining machine-readable, instructions for implementing the method ofclaim
 9. 18. A system for presenting media content, comprising: a pagesupplying system configured to: receive page design data; create a pagedefinition, based on the page design data, that is customized for atarget client device, the page definition including at least onereference to a media stream; and provide the page definition to thetarget client device, wherein the target client device uses the pagedefinition to access the media stream identified by said at least onereference, and to present the media stream in a manner specified by thepage definition, wherein the page definition comprises declarativemarkup content, and wherein said at least one reference comprisesinformation within the declarative markup content that identifies themedia stream.
 19. The system of claim 18, further comprising a contentdelivery system configured to provide the media stream identified bysaid at least one reference to the target client device.
 20. One or moremachine-readable media containing machine-readable instructions forimplementing the system of claim 18.